home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / A-Monthly Disks / (c)aak.d64 / course update (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  5KB  |  220 lines

  1. 10 REM COURSE UPDATE
  2. 20 REM AL JOHNSON
  3. 25 REM 12302 COLERAINE CT
  4. 30 REM RESTON, VA  22091
  5. 35 REM SEND ME A CARD IF YOU LIKE IT OR
  6. 40 REM IF YOU HAVE SUGGESTIONS.
  7. 100 POKE53280,11:POKE53281,15
  8. 110 GOSUB8000
  9. 120 DIM CR$(20,23),CU(23,3),EN$(20)
  10. 130 UN$="[164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
  11. 140 FORX=1TO23:READA,B,C:CU(X,1)=A:CU(X,2)=B:CU(X,3)=C:NEXTX
  12. 150 FORX=828 TO 828+10 :READA:POKEX,A:NEXTX
  13. 190 IFF$="[140]" THEN 4000
  14. 192 IF F$<>"[139]" THEN 200
  15. 194 OPEN15,8,15,"I0"
  16. 195 OPEN5,8,5,"0:GLF CRS-BK,S,R":GOSUB9600:GOTO220
  17. 200 OPEN15,8,15,"I0"
  18. 210 OPEN5,8,5,"0:GLF COURSE,S,R":GOSUB9600
  19. 220 IF EN=61OREN=62THENGOSUB2100:PRINT"NEW FILE[151]":GOTO265
  20. 230 INPUT#5,RC
  21. 240 FORX=1TORC
  22. 250 FORY=1TO23:INPUT#5,CR$(X,Y):NEXTY
  23. 260 NEXTX
  24. 265 CLOSE5:CLOSE15
  25. 270 GOTO4000
  26. 399 REM SAVE SUBR
  27. 400 GOSUB2100:PRINT"O.K.  SAVING"
  28. 407 OPEN15,8,15,"I0"
  29. 410 OPEN6,8,6,"@:GLF COURSE,S,W":GOSUB9600
  30. 420 PRINT#6,RC
  31. 430 FORX=1TORC
  32. 440 FORY=1TO23:PRINT#6,CR$(X,Y)
  33. 446 NEXTY
  34. 450 NEXTX:SV$="Y"
  35. 470 CLOSE6:CLOSE15:GOSUB2100
  36. 480 OM$="SAVE COMPLETE "+STR$(RC)+" COURSES":PRINTOM$
  37. 490 RETURN
  38. 599 REM BACKUP SUBR
  39. 600 POKE850,21:POKE851,7:SYS828
  40. 610 PRINT"INSERT BACKUP DISK - HIT A KEY[151]"
  41. 620 GOSUB9200
  42. 630 SYS828
  43. 640 PRINT"                                "
  44. 650 OPEN15,8,15,"I0"
  45. 660 OPEN6,8,6,"@0:GLF CRS-BK,S,W":GOSUB9600
  46. 663 IFEN<>0THENGOSUB2100:PRINT"DISK ERROR - "+EM$:CLOSE6:CLOSE15:RETURN
  47. 670 GOSUB420:GOSUB2100
  48. 680 OM$="BKUP COMPLETE -- CHANGE DISKS"
  49. 690 PRINTOM$:RETURN
  50. 799 REM *** INSERT UNDERLINES FOR ADD
  51. 800 CR$(CP,1)=LEFT$(UN$,20)
  52. 810 CR$(CP,2)=LEFT$(UN$,2)
  53. 820 CR$(CP,3)=LEFT$(UN$,4)
  54. 830 CR$(CP,4)=LEFT$(UN$,4)
  55. 835 CR$(CP,23)=LEFT$(UN$,5)
  56. 840 FORX=5TO22:CR$(CP,X)=LEFT$(UN$,1)
  57. 850 NEXTX
  58. 860 RETURN
  59. 995 REM *** DRAW BLANK SCREEN
  60. 1000 PRINT"[147][151]";TAB(11);"PERSONAL GOLF HANDICAP"
  61. 1010 PRINT"";TAB(16);"COURSE DATA"
  62. 1020 PRINT"[152]";TAB(8)"COURSE"
  63. 1030 PRINT"  PAR";TAB(11);"RATING";TAB(25);"DISTANCE"
  64. 1040 FORX=1TO7STEP3
  65. 1050 TM=0
  66. 1055 PRINT"  ";
  67. 1060 FORY=XTOX+2
  68. 1070 PRINT"HOLE ";RIGHT$(STR$(Y),2);
  69. 1090 TM=TM+1:IFTM<3THEN PRINTSPC(6);
  70. 1100 NEXTY:PRINT:NEXTX:TM=0
  71. 1110 FORX=10 TO 16 STEP 3
  72. 1120 PRINT"";:TM=0
  73. 1130 FORY=XTOX+2
  74. 1140 PRINT"HOLE ";RIGHT$(STR$(Y),2);
  75. 1150 TM=TM+1:IFTM<3 THEN PRINTSPC(6);
  76. 1160 NEXTY:PRINT:NEXTX
  77. 1170 PRINTTAB(6);"COURSE NAME ABBRV"
  78. 1190 PRINT"[151]A[152]DD  [151]N[152]EXT  [151]B[152]ACK  [151]C[152]HG  [151]Q[152]UIT  [151]S[152]AVE  B[151]K[152]UP"
  79. 1200 RETURN
  80. 1395 REM ** FILL SCREEN WITH DATA
  81. 1400 PRINT"[151] #";STR$(CP):PRINT"OF "STR$(RC)
  82. 1405 POKE850,CU(1,1):POKE851,CU(1,2):SYS828
  83. 1406 PRINT"                    "
  84. 1408 FORX=1TO23
  85. 1410 POKE850,CU(X,1):POKE851,CU(X,2):SYS828
  86. 1420 PRINT"[151]"CR$(CP,X)
  87. 1430 NEXTX
  88. 1440 RETURN
  89. 1595 REM **** MASS ENTRY ROUTINE
  90. 1600 TP=0:FORFP=1TO23
  91. 1610 POKE850,CU(FP,1):POKE851,CU(FP,2):SYS828
  92. 1620 PRINT"?[157][151]";
  93. 1630 GOSUB1800
  94. 1633 IFFP>4ANDFP<23THENTP=TP+VAL(AN$)
  95. 1640 CR$(CP,FP)=AN$
  96. 1650 NEXT FP
  97. 1655 IFTP=VAL(CR$(CP,2))THEN1660
  98. 1658 GOSUB2100:PRINT"WARN-HOLES <> PAR - HOLES TOT";TP:FC=FC+1:RETURN
  99. 1660 GOSUB2100:PRINT"ENTRY COMPLETE[151]":FC=FC+1
  100. 1670 RETURN
  101. 1795 REM *** RTN TO DO GETS FOR ENTRY
  102. 1800 FORX=1TO20:EN$(X)="":NEXTX:C=0:AN$=""
  103. 1810 GETK$:IFK$="" THEN 1810
  104. 1820 IF K$=CHR$(20) THEN 1810
  105. 1825 IF K$=CHR$(13)ANDC=0THEN1810
  106. 1830 IF K$=CHR$(13) ANDC>1THEN 1910
  107. 1840 IF K$="[133]" THEN 1880
  108. 1850 C=C+1:EN$(C)=K$:PRINTK$;
  109. 1860 IF C<CU(FP,3) THEN 1810
  110. 1870 GOTO1910
  111. 1880 IF C-1 < 0 THEN 1810
  112. 1890 C=C-1:EN$(C)="":PRINT"[157] [157]";
  113. 1900 GOTO1810
  114. 1910 FORX=1TOC
  115. 1920 AN$=AN$+MID$(EN$(X),1,1)
  116. 1930 NEXTX
  117. 1940 RETURN
  118. 1995 REM *** FIX ONE FIELD
  119. 2000 POKE850,CU(FP,1):POKE851,CU(FP,2):SYS828
  120. 2003 AZ=CU(FP,3):CR$(CP,FP)=LEFT$(UN$,AZ):PRINT"[151]";CR$(CP,FP):SYS828
  121. 2010 PRINT"?[157][151]";
  122. 2020 GOSUB1800
  123. 2030 CR$(CP,FP)=AN$
  124. 2040 GOSUB2100:PRINT"CHANGE MADE[151]":FC=FC+1
  125. 2050 RETURN
  126. 2095 REM **** POKE IN PROCESS MSG
  127. 2100 POKE850,21:POKE851,7:SYS828
  128. 2110 RETURN
  129. 2150 POKE850,21:POKE851,7:SYS828
  130. 2160 PRINT"                                [155]"
  131. 2170 RETURN
  132. 4000 GOSUB1000
  133. 4010 IF RC=0 THEN CP=1:GOSUB800:GOSUB1400:GOSUB2100:PRINT"NO FILE"
  134. 4020 IF RC>0 THEN CP=1:GOSUB1400
  135. 4030 IF F$="[139]"THEN GOSUB2150:GOSUB2100:PRINT"BKUP LOADED - USE MAIN DISK"
  136. 4200 GOSUB9200:GOSUB2150
  137. 4210 IF K$="S" THEN GOSUB400
  138. 4220 IF K$="K" THEN GOSUB600:GOTO4200
  139. 4230 IF K$="Q" THEN 4700
  140. 4240 IF K$<>"N" THEN 4280
  141. 4250 IF CP+1>RC THEN GOSUB2100:PRINT"TOO FAR":GOTO4200
  142. 4260 CP=CP+1:GOSUB1400
  143. 4270 GOTO4200
  144. 4280 IF K$<>"B"THEN4310
  145. 4285 IF CP-1<1 THEN GOSUB2100:PRINT"TOO FAR[151]":GOTO4200
  146. 4290 CP=CP-1:GOSUB1400
  147. 4300 GOTO4200
  148. 4310 IF K$<>"A" THEN 4400
  149. 4340 CP=RC+1:GOSUB800
  150. 4350 GOSUB1400:REM FILL SCREEN
  151. 4360 GOSUB1600:REM MASS ENTRY
  152. 4370 RC=RC+1:GOTO4200
  153. 4400 IF K$<>"C" THEN 4200
  154. 4410 POKE850,23:POKE851,2:SYS828
  155. 4420 PRINT"N[146]AME  P[146]AR  R[146]ATING  D[146]IST  1-18[146]  Q[146]UIT"
  156. 4430 GOSUB9000
  157. 4435 GOSUB2150
  158. 4440 IF A$<>"Q"THEN4490
  159. 4450 POKE850,23:POKE851,2:SYS828
  160. 4460 PRINT"                                   "
  161. 4470 GOTO4200
  162. 4490 IF A$="N"THEN FP=1:GOTO4570
  163. 4500 IF A$="P" THEN FP=2:GOTO4570
  164. 4510 IF A$="R" THEN FP=3:GOTO4570
  165. 4520 IF A$="D" THEN FP=4:GOTO4570
  166. 4530 IF A$>"0"ANDA$<"19" THEN 4560
  167. 4540 GOTO4430
  168. 4560 FP=VAL(A$)+4
  169. 4570 GOSUB2000: REM FIX 1 FIELD
  170. 4580 GOTO4430
  171. 4700 IF FC=0THEN4720
  172. 4705 IF SV$="Y"THEN4720
  173. 4710 GOSUB2100:PRINT"NO SAVE -- 'Q' AGAIN TO VERIFY":SV$="Y":GOTO4200
  174. 4720 PRINT"[147][151]END OF GOLF COURSE PROGRAM":END
  175. 8000 PRINT"[147]";TAB(13);"GOLF COURSE"
  176. 8010 PRINT"[151]THIS PROGRAM WILL ALLOW YOU TO"
  177. 8020 PRINT"STORE INFORMATION ON COURSES USED"
  178. 8030 PRINT"IN ESTABLISHING YOUR HANDICAP"
  179. 8040 PRINT"YOU WILL NEED TO ENTER THE COURSE"
  180. 8050 PRINT"NAME, RATING, AND PAR ON EACH HOLE"
  181. 8060 PRINT"IF YOU ENTER LESS THAN THE MAXIMUM"
  182. 8070 PRINT"NUMBER OF CHARACTERS FOR AN ENTRY,"
  183. 8080 PRINT"USE THE CARRIAGE RETURN."
  184. 8090 PRINT"DO NOT ENTER ACTUAL ROUNDS PLAYED"
  185. 8100 PRINT"WITH THIS PROGRAM"
  186. 8110 PRINT"USE F1 TO DELETE ENTRIES[146]"
  187. 8120 PRINT"PRESS F8 TO CREATE A NEW FILE"
  188. 8125 PRINT"PRESS F6 TO LOAD BACKUP FILE"
  189. 8130 PRINT"[154]OTHER TO LOAD COURSE FILE"
  190. 8140 GETF$:IFF$=""THEN8140
  191. 8142 IF F$="[139]" THEN PRINT"[129]LOAD BACKUP DISK - HIT A KEY":GOSUB9200
  192. 8150 RETURN
  193. 9000 A$="":TM=0:POKE198,0
  194. 9010 GETZ$:IFZ$=""THEN9010
  195. 9020 IF Z$=CHR$(20)THEN 9010
  196. 9030 IF Z$=CHR$(13)ANDTM=0THEN 9010
  197. 9035 IF Z$=CHR$(13)THEN RETURN
  198. 9040 IF Z$="N"ORZ$="Q"ORZ$="P"ORZ$="R"ORZ$="D" THEN A$=Z$:RETURN
  199. 9050 TM=TM+1
  200. 9060 IF Z$>"0"ANDZ$<"9" THEN 9100
  201. 9070 IF Z$="9"ANDTM=1THEN TM=2:GOTO9100
  202. 9080 IF Z$="0" AND TM=2 THEN 9100
  203. 9090 GOTO9010
  204. 9100 A$=A$+Z$:IFTM=2 THEN RETURN
  205. 9110 GOTO9010
  206. 9200 GETK$:IFK$="" THEN 9200
  207. 9210 RETURN
  208. 9600 INPUT#15,EN,EM$
  209. 9610 IF EN=0OREN=61OREN=62THENRETURN
  210. 9620 AB$="Y":RETURN
  211. 10000 DATA 5,15,20,7,6,2,7,18,4,7,34,4
  212. 10010 DATA 9,10,1,9,23,1,9,36,1
  213. 10020 DATA 11,10,1,11,23,1,11,36,1
  214. 10030 DATA 13,10,1,13,23,1,13,36,1
  215. 10040 DATA 15,10,1,15,23,1,15,36,1
  216. 10050 DATA 17,10,1,17,23,1,17,36,1
  217. 10060 DATA 19,10,1,19,23,1,19,36,1
  218. 10070 DATA 20,24,5
  219. 11000 DATA 174,82,03,172,83,03,24,32,240,255,96
  220.